/**
  ******************************************************************************
  * @file    sym32l010_hal_sign.c
  * @author  AE Team
  * @version 1.0.3
  * @date    2024-05-28
  * @brief   SIGN HAL module driver.
  *
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; Copyright (c) 2024 SIYIMicro.
  * All rights reserved.</center></h2>
  *
  *
  ******************************************************************************
  */


/******************************************************************************/
/* Include files                                                              */
/******************************************************************************/
#include "sym32l010_hal_sign.h"


/*******************************************************************************
  * @brief  获取芯片的LongUid
  * @param  pBuf: 存储UID的指针，其空间应不小于10
  * @retval None
  */
void HAL_SIGN_ReadLongUid(uint8_t *pBuf)
{
    for (uint8_t i=0; i<10; i++)
    {
        pBuf[i] = *((volatile uint8_t *)(CHIPINFO_LUID_ADDR + i));
    }
}


/*******************************************************************************
  * @brief  获取芯片的ShortUid
  * @param  pBuf: 存储UID的指针，其空间应不小于6
  * @retval None
  */
void HAL_SIGN_ReadShortUid(uint8_t *pBuf)
{
    for (uint8_t i=0; i<6; i++)
    {
        pBuf[i] = *((volatile uint8_t *)(CHIPINFO_SUID_ADDR + i));
    }
}


/*******************************************************************************
  * @brief  获取芯片的PartNo
  * @param  pBuf: 存储PartNo的指针，其空间应不小于22
  * @retval None
  */
void HAL_SIGN_ReadPartNo(uint8_t *pBuf)
{
    for (uint8_t i=0; i<22; i++)
    {
        pBuf[i] = *((volatile uint8_t *)(CHIPINFO_PARTNO_ADDR + i));
    }
}


/*******************************************************************************
  * @brief  获取芯片的Flash容量
  * @param  None
  * @retval Flash容量，以字节为单位
  */
uint32_t HAL_SIGN_ReadFlashSize(void)
{
    return (*((volatile uint32_t *)(CHIPINFO_FLASHSIZE_ADDR)));
}


/*******************************************************************************
  * @brief  获取芯片的Ram容量
  * @param  None
  * @retval Ram容量，以字节为单位
  */
uint32_t HAL_SIGN_ReadRamSize(void)
{
    return (*((volatile uint16_t *)(CHIPINFO_RAMSIZE_ADDR)));
}


/*******************************************************************************
  * @brief  获取芯片的管脚数量
  * @param  None
  * @retval 管脚数量，以只为单位
  */
uint32_t HAL_SIGN_ReadPinCount(void)
{
    return (*((volatile uint8_t *)(CHIPINFO_PINCOUNT_ADDR)));
}


/************************ (C) COPYRIGHT SIYIMicro *****END OF FILE*************/
